The present invention relates to three-dimensional computer graphics systems and more specifically to an anisotropic filtering technique which employs super-sampling of two-dimensional data that is structured with multiple levels of detail for producing high quality anti-aliased texture mapped objects in a model space.
Computer graphics systems present dynamic images by displaying data on the screen of a cathode ray tube (CRT). The CRT screen displays an array consisting of thousands of individual picture elements (pixels).
In traditional three-dimensional graphics systems, the three-dimensional images are represented on the two-dimensional CRT screen. The representation is effected by defining a three-dimensional model space and assigning sections of the model space to the pixels of the CRT screen. Each pixel displays the combined visual effects such as color, shading, and transparency of the three-dimensional model space that is contained within its viewing frustum, as described below.
The surfaces of the objects within a three-dimensional model space are generally defined by or reduced to a collection of three-dimensional polygons. Each polygon may be assigned attributes such as intensity, color and opacity, which affect the resulting pixels to be displayed on the CRT screen. These attributes are generally specified at the vertices of the polygons. The process of rendering constitutes determining the pixel frustum, a pyramidal volume of space, as defined by a viewer location at the apex of a pyramid and the infinite projection for four rays passing through extents of a pixel. In so far as a polygon lies within the defined frustum for a specified pixel, the attributes of at least one sample point are determined, commonly using various forms of interpolation from the specified attribute values at the vertices. The surface of objects, in a three-dimensional modeling space, are frequently divided into very many small polygons in order to assign vertex attributes with sufficient resolution to communicate the desired detail to a viewer. This is generally considered an inefficient approach to adding detailed visual characteristics to an object.
The visual characteristics of a polygon may be enhanced by xe2x80x9ctexturing mappingxe2x80x9d polygons, which are generally much larger than would be required using the previous approach. This process is comparable to applying contact paper to the surface of a three-dimensional object and is a well-known and widely used technique in computer graphics. The texture is represented by a two-dimensional array of data, each data element in the array is called a texel and the array is called a texture map. The texture map can represent intensity, color, opacity and many other spatially varying properties. The two coordinate axes of the texture coordinate space are defined by rows of columns of the array and are typically designated by U and V coordinates. A polygon is associated with a specific region of a texture map by relating the vertices of the polygon with individual U, V locations in a texture map. The texels, which lie within the area of the texture map circumscribed by the polygon, are sampled to produce pixels for display on a CRT screen.
It its simplest form, sampling the texels of the texture map constitutes performing a table look-up, commonly called xe2x80x9cpoint sampling,xe2x80x9d of the texels at a specified U, V location. However, this approach results in undesirable visual artifacts, which are commonly classified as xe2x80x9caliasing.xe2x80x9d Aliasing is a term used in the industry for a wide variety of image quality problems including image crawling, edge staircasing, moire patterns, scintillation, and other image noise. Aliasing generally results from sampling a signal at a lower frequency than twice the highest frequency in the original signal. With respect to texture mapping, if the frequency or the discrete texels contained within the pixel frustum exceeds the threshold sampling frequency, aliasing will result.
One solution to the aliasing problem involves sampling the entire area of the projection of the pixel frustum onto a texture map and combining the individual samples to produce a single aggregated pixel. The projection of a pixel onto a polygon, which is oriented at an oblique angle with respect to the viewer""s location, can result in an arbitrarily large area. The time necessary to sample this area, termed the projected pixel footprint or simply pixel footprint here after, is also arbitrarily large. This approach is therefore considered computationally intractable.
To reduce this processing a technique, known as xe2x80x9cmip mapping,xe2x80x9d which uses a sequence of pre-filtered texture maps at various levels of detail (LOD) is commonly employed. Mip maps are representations of a single image at multiple resolutions. Each texture map beyond the initial LOD is a filtered version of a more detailed texture map, usually the highest resolution texture map. Each successive LOD is often one-half as wide and one-half as high as the previous LOD. A determination is made as to which LOD to sample, and is based on the relative size of the projected pixel footprint with respect to the size of the pixel. Intuitively, the LOD is chosen so that the texels are not smaller than the pixel. This approach results in anti-aliased images which are computationally tractable. However, the box-filtered nature of the pre-filtered texture maps assumes a one-to-one aspect ratio of the pixel footprint. When this requirement is not met, the LOD is generally chosen such that the major axis of the pixel footprint dominates the selection computation. The resulting visual effect is that the image appears excessively blurred.
U.S. Pat. No. 5,651,104 to Cosman, entitled xe2x80x9cComputer Graphics System And Process For Adaptive Super Samplingxe2x80x9d describes a technique for the anisotropic, non-uniform direction based, filtering of a texture map which more accurately samples the projected pixel footprint and provides a higher image quality than the aforementioned techniques.
While the arrangement of Cosman is an improvement over earlier systems, it still has many disadvantages that will be discussed below.